package com.cellulam.framework.scheduled;

import lombok.Data;

import java.time.LocalDateTime;

@Data
public class ScheduleTask {

    /** id    */
    private Long id;
    /** 任务类型    */
    private Integer type;
    /** 任务版本    */
    private Integer version;
    /** 业务标识    */
    private Long identifier;
    /** 命令    */
    private String command;
    /** 参数    */
    private String param;
    /** 计划开始时间    */
    private LocalDateTime scheduleStartTime;
    /** 计划任务失效时间    */
    private LocalDateTime scheduleExpireTime;
    /** 上次执行时间    */
    private LocalDateTime executeTime;
    /** 执行次数  默认值: 0  */
    private Integer exeCount;
    /** 执行进程ID    */
    private String procId;
    /** 来源    */
    private String source;
    /** 处理状态, enum:TaskStatus, 1:initialized:初始;2:processing:处理中;3:delay:推迟处理;99:finished:完成;    */
    private Integer status;
    /** 任务触发人    */
    private Long userId;
    /** 创建时间  默认值: CURRENT_TIMESTAMP(3)  */
    private LocalDateTime createTime;
    /** 备注    */
    private String memo;

    @Override
    public String toString() {
        return String.format("[已处理%s次, id: %s, type: %s, command: %s, identifier: %s]",
                this.exeCount,
                this.id,
                this.type,
                this.command,
                this.identifier);
    }
}
